home *** CD-ROM | disk | FTP | other *** search
/ OpenGL Superbible (2nd Edition) / OpenGL SuperBible e2.iso / tools / GLUT-3.7 / adainclude / GL / GLUT.ADS < prev    next >
Encoding:
Text File  |  1998-08-12  |  32.8 KB  |  921 lines

  1. --  Generated from glut.h
  2. --  Date: Sun Apr  6 14:32:02 1997
  3. --
  4. --  Command line definitions:
  5. --      -D__ANSI_C__ -D_LANGUAGE_C -DGENERATING_ADA_BINDING -D__unix -D__sgi
  6. --      -D__mips -D__host_mips -D__EXTENSIONS__ -D__EDG -D__DSO__ -D__STDC__
  7. --      -D_SYSTYPE_SVR4 -D_MODERN_C -D_MIPS_SZPTR=32 -D_MIPS_SZLONG=32
  8. --      -D_MIPS_SZINT=32 -D_MIPS_SIM=_MIPS_SIM_ABI32
  9. --      -D_MIPS_ISA=_MIPS_ISA_MIPS1 -D_MIPS_FPSET=16 -D_MIPSEB
  10. --
  11.  
  12. with Interfaces.C;
  13. with Interfaces.C.Extensions;
  14. with Interfaces.C.Strings;
  15. with GL;
  16. package Glut is
  17.  
  18.    --  Copyright (c) Mark J. Kilgard, 1994, 1995, 1996.
  19.    --  This program is freely distributable without licensing fees  and is
  20.    --  provided without guarantee or warrantee expressed or  implied. This
  21.    --  program is -not- in the public domain. *
  22.    --  **
  23.    --  GLUT API revision history:
  24.    --  
  25.    --  GLUT_API_VERSION is updated to reflect incompatible GLUT
  26.    --  API changes (interface changes, semantic changes, deletions,
  27.    --  or additions).
  28.    --  
  29.    --  GLUT_API_VERSION=1  First public release of GLUT.  11/29/94
  30.    --  
  31.    --  GLUT_API_VERSION=2  Added support for OpenGL/GLX multisampling,
  32.    --  extension.  Supports new input devices like tablet, dial and button
  33.    --  box, and Spaceball.  Easy to query OpenGL extensions.
  34.    --  
  35.    --  GLUT_API_VERSION=3  glutMenuStatus added.
  36.    --  
  37.    --  *
  38.  
  39.    GLUT_API_VERSION : constant := 4;  --  VERSION 4 API NOT FINALIZED
  40.  
  41. --  **
  42. --  GLUT implementation revision history:
  43. --  
  44. --  GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT
  45. --  API revisions and implementation revisions (ie, bug fixes).
  46. --  
  47. --  GLUT_XLIB_IMPLEMENTATION=1  mjk's first public release of
  48. --  GLUT Xlib-based implementation.  11/29/94
  49. --  
  50. --  GLUT_XLIB_IMPLEMENTATION=2  mjk's second public release of
  51. --  GLUT Xlib-based implementation providing GLUT version 2
  52. --  interfaces.
  53. --  
  54. --  GLUT_XLIB_IMPLEMENTATION=3  mjk's GLUT 2.2 images. 4/17/95
  55. --  
  56. --  GLUT_XLIB_IMPLEMENTATION=4  mjk's GLUT 2.3 images. 6/?/95
  57. --  
  58. --  GLUT_XLIB_IMPLEMENTATION=5  mjk's GLUT 3.0 images. 10/?/95
  59. --  
  60. --  GLUT_XLIB_IMPLEMENTATION=7  mjk's GLUT 3.1+ with glutWarpPoitner.  7/24/96
  61. --  
  62. --  GLUT_XLIB_IMPLEMENTATION=8  mjk's GLUT 3.1+ with glutWarpPoitner
  63. --  and video resize.  1/3/97
  64. --  *
  65.  
  66.    GLUT_XLIB_IMPLEMENTATION : constant := 7;
  67.  
  68.    --  Display mode bit masks.
  69.  
  70.    GLUT_RGB                 : constant := 0;
  71.    GLUT_RGBA                : constant := 0;
  72.    GLUT_INDEX               : constant := 1;
  73.    GLUT_SINGLE              : constant := 0;
  74.    GLUT_DOUBLE              : constant := 2;
  75.    GLUT_ACCUM               : constant := 4;
  76.    GLUT_ALPHA               : constant := 8;
  77.    GLUT_DEPTH               : constant := 16;
  78.    GLUT_STENCIL             : constant := 32;
  79.    GLUT_MULTISAMPLE         : constant := 128;
  80.    GLUT_STEREO              : constant := 256;
  81.    GLUT_LUMINANCE           : constant := 512;
  82.  
  83.    --  Mouse buttons.
  84.  
  85.    GLUT_LEFT_BUTTON         : constant := 0;
  86.    GLUT_MIDDLE_BUTTON       : constant := 1;
  87.    GLUT_RIGHT_BUTTON        : constant := 2;
  88.  
  89.    --  Mouse button callback state.
  90.  
  91.    GLUT_DOWN                : constant := 0;
  92.    GLUT_UP                  : constant := 1;
  93.  
  94.    --  function keys
  95.  
  96.    GLUT_KEY_F1              : constant := 1;
  97.    GLUT_KEY_F2              : constant := 2;
  98.    GLUT_KEY_F3              : constant := 3;
  99.    GLUT_KEY_F4              : constant := 4;
  100.    GLUT_KEY_F5              : constant := 5;
  101.    GLUT_KEY_F6              : constant := 6;
  102.    GLUT_KEY_F7              : constant := 7;
  103.    GLUT_KEY_F8              : constant := 8;
  104.    GLUT_KEY_F9              : constant := 9;
  105.    GLUT_KEY_F10             : constant := 10;
  106.    GLUT_KEY_F11             : constant := 11;
  107.    GLUT_KEY_F12             : constant := 12;
  108.  
  109.    --  directional keys
  110.  
  111.    GLUT_KEY_LEFT            : constant := 100;
  112.    GLUT_KEY_UP              : constant := 101;
  113.    GLUT_KEY_RIGHT           : constant := 102;
  114.    GLUT_KEY_DOWN            : constant := 103;
  115.    GLUT_KEY_PAGE_UP         : constant := 104;
  116.    GLUT_KEY_PAGE_DOWN       : constant := 105;
  117.    GLUT_KEY_HOME            : constant := 106;
  118.    GLUT_KEY_END             : constant := 107;
  119.    GLUT_KEY_INSERT          : constant := 108;
  120.  
  121.    --  Entry/exit callback state.
  122.  
  123.    GLUT_LEFT                : constant := 0;
  124.    GLUT_ENTERED             : constant := 1;
  125.  
  126.    --  Menu usage callback state.
  127.  
  128.    GLUT_MENU_NOT_IN_USE     : constant := 0;
  129.    GLUT_MENU_IN_USE         : constant := 1;
  130.  
  131.    --  Visibility callback state.
  132.  
  133.    GLUT_NOT_VISIBLE         : constant := 0;
  134.    GLUT_VISIBLE             : constant := 1;
  135.  
  136.    --  Window status callback state.
  137.  
  138.    GLUT_HIDDEN              : constant := 0;
  139.    GLUT_FULLY_RETAINED      : constant := 1;
  140.    GLUT_PARTIALLY_RETAINED  : constant := 2;
  141.    GLUT_FULLY_COVERED       : constant := 3;
  142.  
  143.    --  Color index component selection values.
  144.  
  145.    GLUT_RED                 : constant := 0;
  146.    GLUT_GREEN               : constant := 1;
  147.    GLUT_BLUE                : constant := 2;
  148.  
  149.    --  Layers for use.
  150.  
  151.    GLUT_NORMAL              : constant := 0;
  152.    GLUT_OVERLAY             : constant := 1;
  153.  
  154.    --  Stroke font opaque addresses (use constants instead in source code).
  155.  
  156.    glutStrokeRoman : aliased Interfaces.C.Extensions.Void_Ptr;
  157.    pragma Import (C, glutStrokeRoman, "glutStrokeRoman", "glutStrokeRoman");
  158.  
  159.    glutStrokeMonoRoman : aliased Interfaces.C.Extensions.Void_Ptr;
  160.    pragma Import (C, 
  161.                   glutStrokeMonoRoman, 
  162.                   "glutStrokeMonoRoman", 
  163.                   "glutStrokeMonoRoman");
  164.  
  165.    --  Stroke font constants (use these in GLUT program).
  166.    --  Bitmap font opaque addresses (use constants instead in source code).
  167.  
  168.    glutBitmap9By15 : aliased Interfaces.C.Extensions.Void_Ptr;
  169.    pragma Import (C, glutBitmap9By15, "glutBitmap9By15", "glutBitmap9By15");
  170.  
  171.    glutBitmap8By13 : aliased Interfaces.C.Extensions.Void_Ptr;
  172.    pragma Import (C, glutBitmap8By13, "glutBitmap8By13", "glutBitmap8By13");
  173.  
  174.    glutBitmapTimesRoman10 : aliased Interfaces.C.Extensions.Void_Ptr;
  175.    pragma Import (C, 
  176.                   glutBitmapTimesRoman10, 
  177.                   "glutBitmapTimesRoman10", 
  178.                   "glutBitmapTimesRoman10");
  179.  
  180.    glutBitmapTimesRoman24 : aliased Interfaces.C.Extensions.Void_Ptr;
  181.    pragma Import (C, 
  182.                   glutBitmapTimesRoman24, 
  183.                   "glutBitmapTimesRoman24", 
  184.                   "glutBitmapTimesRoman24");
  185.  
  186.    glutBitmapHelvetica10 : aliased Interfaces.C.Extensions.Void_Ptr;
  187.    pragma Import (C, 
  188.                   glutBitmapHelvetica10, 
  189.                   "glutBitmapHelvetica10", 
  190.                   "glutBitmapHelvetica10");
  191.  
  192.    glutBitmapHelvetica12 : aliased Interfaces.C.Extensions.Void_Ptr;
  193.    pragma Import (C, 
  194.                   glutBitmapHelvetica12, 
  195.                   "glutBitmapHelvetica12", 
  196.                   "glutBitmapHelvetica12");
  197.  
  198.    glutBitmapHelvetica18 : aliased Interfaces.C.Extensions.Void_Ptr;
  199.    pragma Import (C, 
  200.                   glutBitmapHelvetica18, 
  201.                   "glutBitmapHelvetica18", 
  202.                   "glutBitmapHelvetica18");
  203.  
  204.    --  Bitmap font constants (use these in GLUT program).
  205.    --  glutGet parameters.
  206.  
  207.    GLUT_WINDOW_X                  : constant := 100;
  208.    GLUT_WINDOW_Y                  : constant := 101;
  209.    GLUT_WINDOW_WIDTH              : constant := 102;
  210.    GLUT_WINDOW_HEIGHT             : constant := 103;
  211.    GLUT_WINDOW_BUFFER_SIZE        : constant := 104;
  212.    GLUT_WINDOW_STENCIL_SIZE       : constant := 105;
  213.    GLUT_WINDOW_DEPTH_SIZE         : constant := 106;
  214.    GLUT_WINDOW_RED_SIZE           : constant := 107;
  215.    GLUT_WINDOW_GREEN_SIZE         : constant := 108;
  216.    GLUT_WINDOW_BLUE_SIZE          : constant := 109;
  217.    GLUT_WINDOW_ALPHA_SIZE         : constant := 110;
  218.    GLUT_WINDOW_ACCUM_RED_SIZE     : constant := 111;
  219.    GLUT_WINDOW_ACCUM_GREEN_SIZE   : constant := 112;
  220.    GLUT_WINDOW_ACCUM_BLUE_SIZE    : constant := 113;
  221.    GLUT_WINDOW_ACCUM_ALPHA_SIZE   : constant := 114;
  222.    GLUT_WINDOW_DOUBLEBUFFER       : constant := 115;
  223.    GLUT_WINDOW_RGBA               : constant := 116;
  224.    GLUT_WINDOW_PARENT             : constant := 117;
  225.    GLUT_WINDOW_NUM_CHILDREN       : constant := 118;
  226.    GLUT_WINDOW_COLORMAP_SIZE      : constant := 119;
  227.    GLUT_WINDOW_NUM_SAMPLES        : constant := 120;
  228.    GLUT_WINDOW_STEREO             : constant := 121;
  229.    GLUT_WINDOW_CURSOR             : constant := 122;
  230.    GLUT_SCREEN_WIDTH              : constant := 200;
  231.    GLUT_SCREEN_HEIGHT             : constant := 201;
  232.    GLUT_SCREEN_WIDTH_MM           : constant := 202;
  233.    GLUT_SCREEN_HEIGHT_MM          : constant := 203;
  234.    GLUT_MENU_NUM_ITEMS            : constant := 300;
  235.    GLUT_DISPLAY_MODE_POSSIBLE     : constant := 400;
  236.    GLUT_INIT_WINDOW_X             : constant := 500;
  237.    GLUT_INIT_WINDOW_Y             : constant := 501;
  238.    GLUT_INIT_WINDOW_WIDTH         : constant := 502;
  239.    GLUT_INIT_WINDOW_HEIGHT        : constant := 503;
  240.    GLUT_INIT_DISPLAY_MODE         : constant := 504;
  241.    GLUT_ELAPSED_TIME              : constant := 700;
  242.  
  243.    --  glutDeviceGet parameters.
  244.  
  245.    GLUT_HAS_KEYBOARD              : constant := 600;
  246.    GLUT_HAS_MOUSE                 : constant := 601;
  247.    GLUT_HAS_SPACEBALL             : constant := 602;
  248.    GLUT_HAS_DIAL_AND_BUTTON_BOX   : constant := 603;
  249.    GLUT_HAS_TABLET                : constant := 604;
  250.    GLUT_NUM_MOUSE_BUTTONS         : constant := 605;
  251.    GLUT_NUM_SPACEBALL_BUTTONS     : constant := 606;
  252.    GLUT_NUM_BUTTON_BOX_BUTTONS    : constant := 607;
  253.    GLUT_NUM_DIALS                 : constant := 608;
  254.    GLUT_NUM_TABLET_BUTTONS        : constant := 609;
  255.  
  256.    --  glutLayerGet parameters.
  257.  
  258.    GLUT_OVERLAY_POSSIBLE          : constant := 800;
  259.    GLUT_LAYER_IN_USE              : constant := 801;
  260.    GLUT_HAS_OVERLAY               : constant := 802;
  261.    GLUT_TRANSPARENT_INDEX         : constant := 803;
  262.    GLUT_NORMAL_DAMAGED            : constant := 804;
  263.    GLUT_OVERLAY_DAMAGED           : constant := 805;
  264.  
  265.    --  glutVideoResizeGet parameters.
  266.  
  267.    GLUT_VIDEO_RESIZE_POSSIBLE     : constant := 900;
  268.    GLUT_VIDEO_RESIZE_IN_USE       : constant := 901;
  269.    GLUT_VIDEO_RESIZE_X_DELTA      : constant := 902;
  270.    GLUT_VIDEO_RESIZE_Y_DELTA      : constant := 903;
  271.    GLUT_VIDEO_RESIZE_WIDTH_DELTA  : constant := 904;
  272.    GLUT_VIDEO_RESIZE_HEIGHT_DELTA : constant := 905;
  273.    GLUT_VIDEO_RESIZE_X            : constant := 906;
  274.    GLUT_VIDEO_RESIZE_Y            : constant := 907;
  275.    GLUT_VIDEO_RESIZE_WIDTH        : constant := 908;
  276.    GLUT_VIDEO_RESIZE_HEIGHT       : constant := 909;
  277.  
  278.    --  glutUseLayer parameters.
  279.    --  glutGetModifiers return mask.
  280.  
  281.    GLUT_ACTIVE_SHIFT               : constant := 1;
  282.    GLUT_ACTIVE_CTRL                : constant := 2;
  283.    GLUT_ACTIVE_ALT                 : constant := 4;
  284.  
  285.    --  glutSetCursor parameters.
  286.    --  Basic arrows.
  287.  
  288.    GLUT_CURSOR_RIGHT_ARROW         : constant := 0;
  289.    GLUT_CURSOR_LEFT_ARROW          : constant := 1;
  290.  
  291.    --  Symbolic cursor shapes.
  292.  
  293.    GLUT_CURSOR_INFO                : constant := 2;
  294.    GLUT_CURSOR_DESTROY             : constant := 3;
  295.    GLUT_CURSOR_HELP                : constant := 4;
  296.    GLUT_CURSOR_CYCLE               : constant := 5;
  297.    GLUT_CURSOR_SPRAY               : constant := 6;
  298.    GLUT_CURSOR_WAIT                : constant := 7;
  299.    GLUT_CURSOR_TEXT                : constant := 8;
  300.    GLUT_CURSOR_CROSSHAIR           : constant := 9;
  301.  
  302.    --  Directional cursors.
  303.  
  304.    GLUT_CURSOR_UP_DOWN             : constant := 10;
  305.    GLUT_CURSOR_LEFT_RIGHT          : constant := 11;
  306.  
  307.    --  Sizing cursors.
  308.  
  309.    GLUT_CURSOR_TOP_SIDE            : constant := 12;
  310.    GLUT_CURSOR_BOTTOM_SIDE         : constant := 13;
  311.    GLUT_CURSOR_LEFT_SIDE           : constant := 14;
  312.    GLUT_CURSOR_RIGHT_SIDE          : constant := 15;
  313.    GLUT_CURSOR_TOP_LEFT_CORNER     : constant := 16;
  314.    GLUT_CURSOR_TOP_RIGHT_CORNER    : constant := 17;
  315.    GLUT_CURSOR_BOTTOM_RIGHT_CORNER : constant := 18;
  316.    GLUT_CURSOR_BOTTOM_LEFT_CORNER  : constant := 19;
  317.  
  318.    --  Inherit from parent window.
  319.  
  320.    GLUT_CURSOR_INHERIT             : constant := 100;
  321.  
  322.    --  Blank cursor.
  323.  
  324.    GLUT_CURSOR_NONE                : constant := 101;
  325.  
  326.    --  Fullscreen crosshair (if available).
  327.  
  328.    GLUT_CURSOR_FULL_CROSSHAIR      : constant := 102;
  329.  
  330.    --  GLUT initialization sub-API.
  331.  
  332.    procedure glutInit (argcp : access Integer;
  333.                        argv  : access Interfaces.C.Strings.Chars_Ptr);
  334.    pragma Import (C, glutInit, "glutInit", "glutInit");
  335.  
  336.    procedure glutInitDisplayMode (mode : Interfaces.C.unsigned);
  337.    pragma Import (C, 
  338.                   glutInitDisplayMode, 
  339.                   "glutInitDisplayMode", 
  340.                   "glutInitDisplayMode");
  341.  
  342.    procedure glutInitDisplayString (string : Interfaces.C.Strings.Chars_Ptr);
  343.    pragma Import (C, 
  344.                   glutInitDisplayString, 
  345.                   "glutInitDisplayString", 
  346.                   "glutInitDisplayString");
  347.  
  348.    procedure glutInitWindowPosition (x : Integer; y : Integer);
  349.    pragma Import (C, 
  350.                   glutInitWindowPosition, 
  351.                   "glutInitWindowPosition", 
  352.                   "glutInitWindowPosition");
  353.  
  354.    procedure glutInitWindowSize (width : Integer; height : Integer);
  355.    pragma Import (C, 
  356.                   glutInitWindowSize, 
  357.                   "glutInitWindowSize", 
  358.                   "glutInitWindowSize");
  359.  
  360.    procedure glutMainLoop;
  361.    pragma Import (C, glutMainLoop, "glutMainLoop", "glutMainLoop");
  362.  
  363.    --  GLUT window sub-API.
  364.  
  365.    function glutCreateWindow
  366.       (title : Interfaces.C.Strings.Chars_Ptr) return Integer;
  367.    pragma Import (C, glutCreateWindow, "glutCreateWindow", "glutCreateWindow");
  368.  
  369.    function glutCreateWindow (title : String) return Integer;
  370.  
  371.    function glutCreateSubWindow (win    : Integer;
  372.                                  x      : Integer;
  373.                                  y      : Integer;
  374.                                  width  : Integer;
  375.                                  height : Integer) return Integer;
  376.    pragma Import (C, 
  377.                   glutCreateSubWindow, 
  378.                   "glutCreateSubWindow", 
  379.                   "glutCreateSubWindow");
  380.  
  381.    procedure glutDestroyWindow (win : Integer);
  382.    pragma Import (C, 
  383.                   glutDestroyWindow, 
  384.                   "glutDestroyWindow", 
  385.                   "glutDestroyWindow");
  386.  
  387.    procedure glutPostRedisplay;
  388.    pragma Import (C, 
  389.                   glutPostRedisplay, 
  390.                   "glutPostRedisplay", 
  391.                   "glutPostRedisplay");
  392.  
  393.    procedure glutPostWindowRedisplay (win : Integer);
  394.    pragma Import (C, 
  395.                   glutPostWindowRedisplay, 
  396.                   "glutPostWindowRedisplay", 
  397.                   "glutPostWindowRedisplay");
  398.  
  399.    procedure glutSwapBuffers;
  400.    pragma Import (C, glutSwapBuffers, "glutSwapBuffers", "glutSwapBuffers");
  401.  
  402.    function glutGetWindow return Integer;
  403.    pragma Import (C, glutGetWindow, "glutGetWindow", "glutGetWindow");
  404.  
  405.    procedure glutSetWindow (win : Integer);
  406.    pragma Import (C, glutSetWindow, "glutSetWindow", "glutSetWindow");
  407.  
  408.    procedure glutSetWindowTitle (title : Interfaces.C.Strings.Chars_Ptr);
  409.    pragma Import (C, 
  410.                   glutSetWindowTitle, 
  411.                   "glutSetWindowTitle", 
  412.                   "glutSetWindowTitle");
  413.  
  414.    procedure glutSetWindowTitle (title : String);
  415.  
  416.    procedure glutSetIconTitle (title : Interfaces.C.Strings.Chars_Ptr);
  417.    pragma Import (C, glutSetIconTitle, "glutSetIconTitle", "glutSetIconTitle");
  418.  
  419.    procedure glutSetIconTitle (title : String);
  420.  
  421.    procedure glutPositionWindow (x : Integer; y : Integer);
  422.    pragma Import (C, 
  423.                   glutPositionWindow, 
  424.                   "glutPositionWindow", 
  425.                   "glutPositionWindow");
  426.  
  427.    procedure glutReshapeWindow (width : Integer; height : Integer);
  428.    pragma Import (C, 
  429.                   glutReshapeWindow, 
  430.                   "glutReshapeWindow", 
  431.                   "glutReshapeWindow");
  432.  
  433.    procedure glutPopWindow;
  434.    pragma Import (C, glutPopWindow, "glutPopWindow", "glutPopWindow");
  435.  
  436.    procedure glutPushWindow;
  437.    pragma Import (C, glutPushWindow, "glutPushWindow", "glutPushWindow");
  438.  
  439.    procedure glutIconifyWindow;
  440.    pragma Import (C, 
  441.                   glutIconifyWindow, 
  442.                   "glutIconifyWindow", 
  443.                   "glutIconifyWindow");
  444.  
  445.    procedure glutShowWindow;
  446.    pragma Import (C, glutShowWindow, "glutShowWindow", "glutShowWindow");
  447.  
  448.    procedure glutHideWindow;
  449.    pragma Import (C, glutHideWindow, "glutHideWindow", "glutHideWindow");
  450.  
  451.    procedure glutFullScreen;
  452.    pragma Import (C, glutFullScreen, "glutFullScreen", "glutFullScreen");
  453.  
  454.    procedure glutSetCursor (cursor : Integer);
  455.    pragma Import (C, glutSetCursor, "glutSetCursor", "glutSetCursor");
  456.  
  457.    procedure glutWarpPointer (x : Integer; y : Integer);
  458.    pragma Import (C, glutWarpPointer, "glutWarpPointer", "glutWarpPointer");
  459.  
  460.    --  GLUT overlay sub-API.
  461.  
  462.    procedure glutEstablishOverlay;
  463.    pragma Import (C, 
  464.                   glutEstablishOverlay, 
  465.                   "glutEstablishOverlay", 
  466.                   "glutEstablishOverlay");
  467.  
  468.    procedure glutRemoveOverlay;
  469.    pragma Import (C, 
  470.                   glutRemoveOverlay, 
  471.                   "glutRemoveOverlay", 
  472.                   "glutRemoveOverlay");
  473.  
  474.    procedure glutUseLayer (layer : GL.GLenum);
  475.    pragma Import (C, glutUseLayer, "glutUseLayer", "glutUseLayer");
  476.  
  477.    procedure glutPostOverlayRedisplay;
  478.    pragma Import (C, 
  479.                   glutPostOverlayRedisplay, 
  480.                   "glutPostOverlayRedisplay", 
  481.                   "glutPostOverlayRedisplay");
  482.  
  483.    procedure glutPostWindowOverlayRedisplay (win : Integer);
  484.    pragma Import (C, 
  485.                   glutPostWindowOverlayRedisplay, 
  486.                   "glutPostWindowOverlayRedisplay", 
  487.                   "glutPostWindowOverlayRedisplay");
  488.  
  489.    procedure glutShowOverlay;
  490.    pragma Import (C, glutShowOverlay, "glutShowOverlay", "glutShowOverlay");
  491.  
  492.    procedure glutHideOverlay;
  493.    pragma Import (C, glutHideOverlay, "glutHideOverlay", "glutHideOverlay");
  494.  
  495.    --  GLUT menu sub-API.
  496.  
  497.    type Glut_proc_1 is access procedure (P1 : Integer);
  498.  
  499.    function glutCreateMenu (P1 : Glut_proc_1) return Integer;
  500.    pragma Import (C, glutCreateMenu, "glutCreateMenu", "glutCreateMenu");
  501.  
  502.    procedure glutDestroyMenu (menu : Integer);
  503.    pragma Import (C, glutDestroyMenu, "glutDestroyMenu", "glutDestroyMenu");
  504.  
  505.    function glutGetMenu return Integer;
  506.    pragma Import (C, glutGetMenu, "glutGetMenu", "glutGetMenu");
  507.  
  508.    procedure glutSetMenu (menu : Integer);
  509.    pragma Import (C, glutSetMenu, "glutSetMenu", "glutSetMenu");
  510.  
  511.    procedure glutAddMenuEntry (label : Interfaces.C.Strings.Chars_Ptr;
  512.                                value : Integer);
  513.    pragma Import (C, glutAddMenuEntry, "glutAddMenuEntry", "glutAddMenuEntry");
  514.  
  515.    procedure glutAddMenuEntry (label : String; value : Integer);
  516.  
  517.    procedure glutAddSubMenu (label   : Interfaces.C.Strings.Chars_Ptr;
  518.                              submenu : Integer);
  519.    pragma Import (C, glutAddSubMenu, "glutAddSubMenu", "glutAddSubMenu");
  520.  
  521.    procedure glutAddSubMenu (label : String; submenu : Integer);
  522.  
  523.    procedure glutChangeToMenuEntry (item  : Integer;
  524.                                     label : Interfaces.C.Strings.Chars_Ptr;
  525.                                     value : Integer);
  526.    pragma Import (C, 
  527.                   glutChangeToMenuEntry, 
  528.                   "glutChangeToMenuEntry", 
  529.                   "glutChangeToMenuEntry");
  530.  
  531.    procedure glutChangeToMenuEntry (item  : Integer;
  532.                                     label : String;
  533.                                     value : Integer);
  534.  
  535.    procedure glutChangeToSubMenu (item    : Integer;
  536.                                   label   : Interfaces.C.Strings.Chars_Ptr;
  537.                                   submenu : Integer);
  538.    pragma Import (C, 
  539.                   glutChangeToSubMenu, 
  540.                   "glutChangeToSubMenu", 
  541.                   "glutChangeToSubMenu");
  542.  
  543.    procedure glutChangeToSubMenu (item    : Integer;
  544.                                   label   : String;
  545.                                   submenu : Integer);
  546.  
  547.    procedure glutRemoveMenuItem (item : Integer);
  548.    pragma Import (C, 
  549.                   glutRemoveMenuItem, 
  550.                   "glutRemoveMenuItem", 
  551.                   "glutRemoveMenuItem");
  552.  
  553.    procedure glutAttachMenu (button : Integer);
  554.    pragma Import (C, glutAttachMenu, "glutAttachMenu", "glutAttachMenu");
  555.  
  556.    procedure glutDetachMenu (button : Integer);
  557.    pragma Import (C, glutDetachMenu, "glutDetachMenu", "glutDetachMenu");
  558.  
  559.    --  GLUT callback sub-API.
  560.  
  561.    type Glut_proc_2 is access procedure;
  562.  
  563.    procedure glutDisplayFunc (P1 : Glut_proc_2);
  564.    pragma Import (C, glutDisplayFunc, "glutDisplayFunc", "glutDisplayFunc");
  565.  
  566.    type Glut_proc_3 is access procedure (width : Integer; height : Integer);
  567.  
  568.    procedure glutReshapeFunc (P1 : Glut_proc_3);
  569.    pragma Import (C, glutReshapeFunc, "glutReshapeFunc", "glutReshapeFunc");
  570.  
  571.    type Glut_proc_4 is access
  572.       procedure (key : Interfaces.C.unsigned_char; x : Integer; y : Integer);
  573.  
  574.    procedure glutKeyboardFunc (P1 : Glut_proc_4);
  575.    pragma Import (C, glutKeyboardFunc, "glutKeyboardFunc", "glutKeyboardFunc");
  576.  
  577.    type Glut_proc_5 is access
  578.       procedure (button : Integer; state : Integer; x : Integer; y : Integer);
  579.  
  580.    procedure glutMouseFunc (P1 : Glut_proc_5);
  581.    pragma Import (C, glutMouseFunc, "glutMouseFunc", "glutMouseFunc");
  582.  
  583.    type Glut_proc_6 is access procedure (x : Integer; y : Integer);
  584.  
  585.    procedure glutMotionFunc (P1 : Glut_proc_6);
  586.    pragma Import (C, glutMotionFunc, "glutMotionFunc", "glutMotionFunc");
  587.  
  588.    type Glut_proc_7 is access procedure (x : Integer; y : Integer);
  589.  
  590.    procedure glutPassiveMotionFunc (P1 : Glut_proc_7);
  591.    pragma Import (C, 
  592.                   glutPassiveMotionFunc, 
  593.                   "glutPassiveMotionFunc", 
  594.                   "glutPassiveMotionFunc");
  595.  
  596.    type Glut_proc_8 is access procedure (state : Integer);
  597.  
  598.    procedure glutEntryFunc (P1 : Glut_proc_8);
  599.    pragma Import (C, glutEntryFunc, "glutEntryFunc", "glutEntryFunc");
  600.  
  601.    type Glut_proc_9 is access procedure (state : Integer);
  602.  
  603.    procedure glutVisibilityFunc (P1 : Glut_proc_9);
  604.    pragma Import (C, 
  605.                   glutVisibilityFunc, 
  606.                   "glutVisibilityFunc", 
  607.                   "glutVisibilityFunc");
  608.  
  609.    type Glut_proc_10 is access procedure;
  610.  
  611.    procedure glutIdleFunc (P1 : Glut_proc_10);
  612.    pragma Import (C, glutIdleFunc, "glutIdleFunc", "glutIdleFunc");
  613.  
  614.    type Glut_proc_11 is access procedure (value : Integer);
  615.  
  616.    procedure glutTimerFunc (millis : Interfaces.C.unsigned;
  617.                             P2     : Glut_proc_11;
  618.                             value  : Integer);
  619.    pragma Import (C, glutTimerFunc, "glutTimerFunc", "glutTimerFunc");
  620.  
  621.    type Glut_proc_12 is access procedure (state : Integer);
  622.  
  623.    procedure glutMenuStateFunc (P1 : Glut_proc_12);
  624.    pragma Import (C, 
  625.                   glutMenuStateFunc, 
  626.                   "glutMenuStateFunc", 
  627.                   "glutMenuStateFunc");
  628.  
  629.    type Glut_proc_13 is access
  630.       procedure (key : Integer; x : Integer; y : Integer);
  631.  
  632.    procedure glutSpecialFunc (P1 : Glut_proc_13);
  633.    pragma Import (C, glutSpecialFunc, "glutSpecialFunc", "glutSpecialFunc");
  634.  
  635.    type Glut_proc_14 is access
  636.       procedure (x : Integer; y : Integer; z : Integer);
  637.  
  638.    procedure glutSpaceballMotionFunc (P1 : Glut_proc_14);
  639.    pragma Import (C, 
  640.                   glutSpaceballMotionFunc, 
  641.                   "glutSpaceballMotionFunc", 
  642.                   "glutSpaceballMotionFunc");
  643.  
  644.    type Glut_proc_15 is access
  645.       procedure (x : Integer; y : Integer; z : Integer);
  646.  
  647.    procedure glutSpaceballRotateFunc (P1 : Glut_proc_15);
  648.    pragma Import (C, 
  649.                   glutSpaceballRotateFunc, 
  650.                   "glutSpaceballRotateFunc", 
  651.                   "glutSpaceballRotateFunc");
  652.  
  653.    type Glut_proc_16 is access procedure (button : Integer; state : Integer);
  654.  
  655.    procedure glutSpaceballButtonFunc (P1 : Glut_proc_16);
  656.    pragma Import (C, 
  657.                   glutSpaceballButtonFunc, 
  658.                   "glutSpaceballButtonFunc", 
  659.                   "glutSpaceballButtonFunc");
  660.  
  661.    type Glut_proc_17 is access procedure (button : Integer; state : Integer);
  662.  
  663.    procedure glutButtonBoxFunc (P1 : Glut_proc_17);
  664.    pragma Import (C, 
  665.                   glutButtonBoxFunc, 
  666.                   "glutButtonBoxFunc", 
  667.                   "glutButtonBoxFunc");
  668.  
  669.    type Glut_proc_18 is access procedure (dial : Integer; value : Integer);
  670.  
  671.    procedure glutDialsFunc (P1 : Glut_proc_18);
  672.    pragma Import (C, glutDialsFunc, "glutDialsFunc", "glutDialsFunc");
  673.  
  674.    type Glut_proc_19 is access procedure (x : Integer; y : Integer);
  675.  
  676.    procedure glutTabletMotionFunc (P1 : Glut_proc_19);
  677.    pragma Import (C, 
  678.                   glutTabletMotionFunc, 
  679.                   "glutTabletMotionFunc", 
  680.                   "glutTabletMotionFunc");
  681.  
  682.    type Glut_proc_20 is access
  683.       procedure (button : Integer; state : Integer; x : Integer; y : Integer);
  684.  
  685.    procedure glutTabletButtonFunc (P1 : Glut_proc_20);
  686.    pragma Import (C, 
  687.                   glutTabletButtonFunc, 
  688.                   "glutTabletButtonFunc", 
  689.                   "glutTabletButtonFunc");
  690.  
  691.    type Glut_proc_21 is access
  692.       procedure (status : Integer; x : Integer; y : Integer);
  693.  
  694.    procedure glutMenuStatusFunc (P1 : Glut_proc_21);
  695.    pragma Import (C, 
  696.                   glutMenuStatusFunc, 
  697.                   "glutMenuStatusFunc", 
  698.                   "glutMenuStatusFunc");
  699.  
  700.    type Glut_proc_22 is access procedure;
  701.  
  702.    procedure glutOverlayDisplayFunc (P1 : Glut_proc_22);
  703.    pragma Import (C, 
  704.                   glutOverlayDisplayFunc, 
  705.                   "glutOverlayDisplayFunc", 
  706.                   "glutOverlayDisplayFunc");
  707.  
  708.    type Glut_proc_23 is access procedure (state : Integer);
  709.  
  710.    procedure glutWindowStatusFunc (P1 : Glut_proc_23);
  711.    pragma Import (C, 
  712.                   glutWindowStatusFunc, 
  713.                   "glutWindowStatusFunc", 
  714.                   "glutWindowStatusFunc");
  715.  
  716.    --  GLUT color index sub-API.
  717.  
  718.    procedure glutSetColor (P1    : Integer;
  719.                            red   : GL.GLfloat;
  720.                            green : GL.GLfloat;
  721.                            blue  : GL.GLfloat);
  722.    pragma Import (C, glutSetColor, "glutSetColor", "glutSetColor");
  723.  
  724.    function glutGetColor
  725.       (ndx : Integer; component : Integer) return GL.GLfloat;
  726.    pragma Import (C, glutGetColor, "glutGetColor", "glutGetColor");
  727.  
  728.    procedure glutCopyColormap (win : Integer);
  729.    pragma Import (C, glutCopyColormap, "glutCopyColormap", "glutCopyColormap");
  730.  
  731.    --  GLUT state retrieval sub-API.
  732.  
  733.    function glutGet (type_Id : GL.GLenum) return Integer;
  734.    pragma Import (C, glutGet, "glutGet", "glutGet");
  735.  
  736.    function glutDeviceGet (type_Id : GL.GLenum) return Integer;
  737.    pragma Import (C, glutDeviceGet, "glutDeviceGet", "glutDeviceGet");
  738.  
  739.    --  GLUT extension support sub-API
  740.  
  741.    function glutExtensionSupported
  742.       (name : Interfaces.C.Strings.Chars_Ptr) return Integer;
  743.    pragma Import (C, 
  744.                   glutExtensionSupported, 
  745.                   "glutExtensionSupported", 
  746.                   "glutExtensionSupported");
  747.  
  748.    function glutExtensionSupported (name : String) return Integer;
  749.  
  750.    function glutGetModifiers return Integer;
  751.    pragma Import (C, glutGetModifiers, "glutGetModifiers", "glutGetModifiers");
  752.  
  753.    function glutLayerGet (type_Id : GL.GLenum) return Integer;
  754.    pragma Import (C, glutLayerGet, "glutLayerGet", "glutLayerGet");
  755.  
  756.    --  GLUT font sub-API
  757.  
  758.    procedure glutBitmapCharacter (font      : access Interfaces.C.Extensions.Void_Ptr;
  759.                                   character : Integer);
  760.    pragma Import (C, 
  761.                   glutBitmapCharacter, 
  762.                   "glutBitmapCharacter", 
  763.                   "glutBitmapCharacter");
  764.  
  765.    function glutBitmapWidth
  766.       (font      : access Interfaces.C.Extensions.Void_Ptr;
  767.        character : Integer) return Integer;
  768.    pragma Import (C, glutBitmapWidth, "glutBitmapWidth", "glutBitmapWidth");
  769.  
  770.    procedure glutStrokeCharacter
  771.       (font      : access Interfaces.C.Extensions.Void_Ptr;
  772.        character : Integer);
  773.    pragma Import (C, 
  774.                   glutStrokeCharacter, 
  775.                   "glutStrokeCharacter", 
  776.                   "glutStrokeCharacter");
  777.  
  778.    function glutStrokeWidth
  779.       (font      : access Interfaces.C.Extensions.Void_Ptr;
  780.        character : Integer) return Integer;
  781.    pragma Import (C, glutStrokeWidth, "glutStrokeWidth", "glutStrokeWidth");
  782.  
  783.    function glutStrokeLength
  784.       (font      : access Interfaces.C.Extensions.Void_Ptr;
  785.        string    : Interfaces.C.Strings.Chars_Ptr) return Integer;
  786.    pragma Import (C, glutStrokeLength, "glutStrokeLength", "glutStrokeLength");
  787.  
  788.    function glutBitmapLength
  789.       (font      : access Interfaces.C.Extensions.Void_Ptr;
  790.        string    : Interfaces.C.Strings.Chars_Ptr) return Integer;
  791.    pragma Import (C, glutBitmapLength, "glutBitmapLength", "glutBitmapLength");
  792.  
  793.    --  GLUT pre-built models sub-API
  794.  
  795.    procedure glutWireSphere (radius : GL.GLdouble;
  796.                              slices : GL.GLint;
  797.                              stacks : GL.GLint);
  798.    pragma Import (C, glutWireSphere, "glutWireSphere", "glutWireSphere");
  799.  
  800.    procedure glutSolidSphere (radius : GL.GLdouble;
  801.                               slices : GL.GLint;
  802.                               stacks : GL.GLint);
  803.    pragma Import (C, glutSolidSphere, "glutSolidSphere", "glutSolidSphere");
  804.  
  805.    procedure glutWireCone (base   : GL.GLdouble;
  806.                            height : GL.GLdouble;
  807.                            slices : GL.GLint;
  808.                            stacks : GL.GLint);
  809.    pragma Import (C, glutWireCone, "glutWireCone", "glutWireCone");
  810.  
  811.    procedure glutSolidCone (base   : GL.GLdouble;
  812.                             height : GL.GLdouble;
  813.                             slices : GL.GLint;
  814.                             stacks : GL.GLint);
  815.    pragma Import (C, glutSolidCone, "glutSolidCone", "glutSolidCone");
  816.  
  817.    procedure glutWireCube (size : GL.GLdouble);
  818.    pragma Import (C, glutWireCube, "glutWireCube", "glutWireCube");
  819.  
  820.    procedure glutSolidCube (size : GL.GLdouble);
  821.    pragma Import (C, glutSolidCube, "glutSolidCube", "glutSolidCube");
  822.  
  823.    procedure glutWireTorus (innerRadius : GL.GLdouble;
  824.                             outerRadius : GL.GLdouble;
  825.                             sides       : GL.GLint;
  826.                             rings       : GL.GLint);
  827.    pragma Import (C, glutWireTorus, "glutWireTorus", "glutWireTorus");
  828.  
  829.    procedure glutSolidTorus (innerRadius : GL.GLdouble;
  830.                              outerRadius : GL.GLdouble;
  831.                              sides       : GL.GLint;
  832.                              rings       : GL.GLint);
  833.    pragma Import (C, glutSolidTorus, "glutSolidTorus", "glutSolidTorus");
  834.  
  835.    procedure glutWireDodecahedron;
  836.    pragma Import (C, 
  837.                   glutWireDodecahedron, 
  838.                   "glutWireDodecahedron", 
  839.                   "glutWireDodecahedron");
  840.  
  841.    procedure glutSolidDodecahedron;
  842.    pragma Import (C, 
  843.                   glutSolidDodecahedron, 
  844.                   "glutSolidDodecahedron", 
  845.                   "glutSolidDodecahedron");
  846.  
  847.    procedure glutWireTeapot (size : GL.GLdouble);
  848.    pragma Import (C, glutWireTeapot, "glutWireTeapot", "glutWireTeapot");
  849.  
  850.    procedure glutSolidTeapot (size : GL.GLdouble);
  851.    pragma Import (C, glutSolidTeapot, "glutSolidTeapot", "glutSolidTeapot");
  852.  
  853.    procedure glutWireOctahedron;
  854.    pragma Import (C, 
  855.                   glutWireOctahedron, 
  856.                   "glutWireOctahedron", 
  857.                   "glutWireOctahedron");
  858.  
  859.    procedure glutSolidOctahedron;
  860.    pragma Import (C, 
  861.                   glutSolidOctahedron, 
  862.                   "glutSolidOctahedron", 
  863.                   "glutSolidOctahedron");
  864.  
  865.    procedure glutWireTetrahedron;
  866.    pragma Import (C, 
  867.                   glutWireTetrahedron, 
  868.                   "glutWireTetrahedron", 
  869.                   "glutWireTetrahedron");
  870.  
  871.    procedure glutSolidTetrahedron;
  872.    pragma Import (C, 
  873.                   glutSolidTetrahedron, 
  874.                   "glutSolidTetrahedron", 
  875.                   "glutSolidTetrahedron");
  876.  
  877.    procedure glutWireIcosahedron;
  878.    pragma Import (C, 
  879.                   glutWireIcosahedron, 
  880.                   "glutWireIcosahedron", 
  881.                   "glutWireIcosahedron");
  882.  
  883.    procedure glutSolidIcosahedron;
  884.    pragma Import (C, 
  885.                   glutSolidIcosahedron, 
  886.                   "glutSolidIcosahedron", 
  887.                   "glutSolidIcosahedron");
  888.  
  889.    function glutVideoResizeGet (param : GL.GLenum) return Integer;
  890.    pragma Import (C, 
  891.                   glutVideoResizeGet, 
  892.                   "glutVideoResizeGet", 
  893.                   "glutVideoResizeGet");
  894.  
  895.    procedure glutSetupVideoResizing;
  896.    pragma Import (C, 
  897.                   glutSetupVideoResizing, 
  898.                   "glutSetupVideoResizing", 
  899.                   "glutSetupVideoResizing");
  900.  
  901.    procedure glutStopVideoResizing;
  902.    pragma Import (C, 
  903.                   glutStopVideoResizing, 
  904.                   "glutStopVideoResizing", 
  905.                   "glutStopVideoResizing");
  906.  
  907.    procedure glutVideoResize (x      : Integer;
  908.                               y      : Integer;
  909.                               width  : Integer;
  910.                               height : Integer);
  911.    pragma Import (C, glutVideoResize, "glutVideoResize", "glutVideoResize");
  912.  
  913.    procedure glutVideoPan (x      : Integer;
  914.                            y      : Integer;
  915.                            width  : Integer;
  916.                            height : Integer);
  917.    pragma Import (C, glutVideoPan, "glutVideoPan", "glutVideoPan");
  918.  
  919. end Glut;
  920.  
  921.